package org.mkdir.web.controller.felhasznalo.dokumentum;

/*
 * Copyright 2011 Alex Paréj.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.mkdir.ejb.DokumentumService;
import org.mkdir.model.Dokumentum;
import org.mkdir.util.jsf.FacesMessageUtil;
import org.mkdir.util.jsf.MessageBundle;
import org.mkdir.web.controller.felhasznalo.FelhasznaloSessionController;

/**
 *
 * @author Alex Paréj
 */
@Named
@ViewScoped
public class LomtarController implements Serializable {

    @Inject
    private DokumentumService dokumentumService;
    @Inject
    private FelhasznaloSessionController felhasznaloSessionController;
    private List<Dokumentum> dokumentumok;
    private List<Dokumentum> filteredDokumentumok;
    private Dokumentum[] valasztottDokumentumok;

    public List<Dokumentum> getDokumentumok() {
        if (dokumentumok == null) {
            dokumentumok = dokumentumService.getLomtar(felhasznaloSessionController.getFelhasznalo());
        }
        return dokumentumok;
    }

    public Dokumentum[] getValasztottDokumentumok() {
        return valasztottDokumentumok;
    }

    public void setValasztottDokumentumok(Dokumentum[] valasztottDokumentumok) {
        this.valasztottDokumentumok = valasztottDokumentumok;
    }

    public void torolListener() {
        torol();
    }

    public void visszaallitListener() {
        visszaallit();
    }

    private void torol() {
        dokumentumService.torolVegleg(valasztottDokumentumok);
        invalidalDokumentumok();
        invalidalValasztottDokumentumok();
        FacesMessageUtil.addInfoMessage(MessageBundle.getMessage("torolve"));
    }

    private void visszaallit() {
        dokumentumService.visszaallitLomtar(valasztottDokumentumok);
        invalidalDokumentumok();
        invalidalValasztottDokumentumok();
        FacesMessageUtil.addInfoMessage(MessageBundle.getMessage("visszaallitva"));
    }

    private void invalidalDokumentumok() {
        dokumentumok = null;
    }

    private void invalidalValasztottDokumentumok() {
        valasztottDokumentumok = null;
    }

    public boolean isNincsDokumentumValasztva() {
        return valasztottDokumentumok == null || valasztottDokumentumok.length == 0;
    }

    public List<Dokumentum> getFilteredDokumentumok() {
        return filteredDokumentumok;
    }

    public void setFilteredDokumentumok(List<Dokumentum> filteredDokumentumok) {
        this.filteredDokumentumok = filteredDokumentumok;
    }
}
